'use strict'//使用严格模式，确保代码在更严格的条件下运行
const path = require('path')//引用Node.js的path模块，用于处理和转换文件路径

//定义一个函数，用于解析相对路径为绝对路径
function resolve (dir) {
  return path.join(__dirname, dir)//使用path.join将_dirname和传入的路径参数拼接为绝对路径
}

module.exports = {
  //基本路径
  publicPath: './',//定义项目的基础路径，通常用于部署在相对路径的静态网站
  outputDir: 'admin',//构建输出的目录名，默认是‘dist’
  assetsDir: 'static',//放置生成的静态资源(js,css,img,fonts)的目录
  lintOnSave: true,//是否在保存时使用‘eslint-loader’进行检查，设置为true用ESLint检查代码
  productionSourceMap: false,//生成环境下不生成source map以加快构建速度并减少包的体积
  
  //webpack-dev-server相关配置
  devServer: {
    open: true,//自动打开浏览器
    host: 'localhost',//指定要使用的host
    port: 8002,//指定要使用的端口
    https: false,//是否启用https
    hotOnly: false,//是否启用热更新，仅热更新

    //配置代理
    proxy: {
      '/api': {
        target: 'http://localhost:8000',//代理的目标地址
        changeOrigin: true//是否改变源地址
      }
    }
  },

  //多页面配置
  pages: {
    index: {
      entry: 'src/main.js',//入口文件
      template: 'public/index.html',//模板文件
      filename: 'index.html'//输出文件名
    }
  },

    // 修改 webpack 的配置
  chainWebpack (config) {
    //配置svg-sprite-loader以处理SVG图标
    config.module
      .rule('svg')
      .exclude.add(resolve('src/icons'))//排除src/icons目录
      .end()

    //新增一个规则，用于处理src/icon目录下的SVG文件
    config.module
      .rule('icons')
      .test(/\.svg$/)//匹配.svg文件
      .include.add(resolve('src/icons')) //只处理src/icons目录下的文件
      .end()
      .use('svg-sprite-loader') // 使用 svg-sprite-loader
      .loader('svg-sprite-loader')// 指定 loader
      .options({
        symbolId: 'icon-[name]' // 配置 symbolId 模板，生成的 symbolId 为 icon-图标名
      })
      .end()
  }
}
